<?php


namespace core;


class Query
{
    // 连接对象
    public $pdo = null;
    // 表名
    public $table;
    // 字段
    public $field = '*';
    // 条件
    public $where;
    // 数量
    public $limit;

    // 构造方法：连接数据库
    public function __construct()
    {
        // 实例化时自动连接数据库
        $this->pdo = MyPDO::getInstance($GLOBALS['config']['database']);
    }

    // 设置数据库表名称
    public function table($tableName)
    {
        $this->table = $tableName;
        return $this;
    }

    // 设置数据表字段
    public function field($fields = '*')
    {
        $this->field = $fields;
        return $this;
    }

    // 设置数据库表查询条件
    public function where($where = '')
    {
        $this->where = empty($where) ? $where : ' WHERE '.$where;
        return $this;
    }

    // 设置数据表显示数量
    public function limit($limit)
    {
        $this->limit = empty($limit) ? $limit : ' LIMIT '.$limit;
        return $this;
    }

    // 查询单个数据
    public function find()
    {
        // 拼装SQL
        $sql = 'SELECT '
            . $this->field
            . ' FROM '
            . $this->table
            . $this->where
            . $this->limit;

        return $this->pdo->fetchRow($sql);
    }

    // 查询数据集
    public function select()
    {
        // 拼装SQL
        $sql = 'SELECT '
            . $this->field
            . ' FROM '
            . $this->table
            . $this->where
            . $this->limit;

        return $this->pdo->fetchAll($sql);
    }
}